上一篇我們看完了專案結構,今天主要要來了解 Starter (啟動器) 的部分
而在深入了解 Starter 之前,我們先來看專案中的 build.gradle 檔案,這個檔案在 Spring Boot 中扮演著至關重要的角色
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.3'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.demo'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
這個 build.gradle 檔案看起來可能有點複雜,但別擔心,讓我們一起來解析它
看完一遍,應該不會覺得很難吧?
看起來只有兩個套件(依賴),我們的 Web 應用就能運行!這就是 Spring Boot Starter 的魔力所在
Spring Boot Starter 是一組方便的套件依賴描述,你可以將它們包含在你的應用程式中。
簡單來說,它們就像是預先打包好的"配方",包含了開始使用某項技術所需的所有依賴。
想像一下,你正在準備一頓豐盛的晚餐。與其單獨購買每一種食材和調味料,你可以直接買一個「晚餐套餐」,裡面包含了你需要的一切。Spring Boot Starter 就是這樣的「套餐」!
~就像麥當勞的套餐一樣~(誤)
讓我們回到我們的 build.gradle 文件
注意到我們只添加了 spring-boot-starter-web,但這個小小的依賴為我們帶來了什麼呢?
所有這些,只需要一行程式碼!這就是 Spring Boot Starter 的強大之處。
在 Spring Boot 中,雖然沒有像 .NET 的 NuGet
那樣方便的搜尋套件功能,不過我們還是可以使用 Maven Repository 這個網站來搜尋相關的 Java 套件和 Spring Boot Starter。
使用 Maven Repository 尋找 Starter 的步驟:
在搜索欄輸入 spring-boot-starter
你會看到一長串的 Starter 列表
點擊你感興趣的 Starter,就可以看到它的詳細信息和使用方法,這裡以 Spring Boot Starter
為例,可以看到相關的詳細說明
點選相關的版本 version 後,就可以看到不同的套件管理的相關寫法,
現在,讓我們來比較一下 Spring Boot Starter 和 C# 的 NuGet packages
這兩者都是用來管理依賴的工具,但它們有一些相同點和不同點。
不過我覺得有越來越多的 NuGet 套件,都具有安裝後就可以直接使用的特性
在 Spring 開發中,Maven 和 Gradle 都是非常流行的構建工具和依賴管理系統,我們大概來看一下它們兩個的主要差別。
在 Maven 中添加 Spring Boot Web Starter 看起來是這樣的:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
而在 Gradle 中,則是這樣:
implementation 'org.springframework.boot:spring-boot-starter-web'
我覺得 Gradle 在寫法上會比較簡單一點(不是很喜歡 XML 的結構 XD)
雖然一開始初學者的門檻會高了一點,不過我覺得它是值得的,Gradle 在客製上也會比較靈活,如果你什麼都不知道,那就用 Gradle 就對了
缺點就是,網路上大部分查到的範例都是 Maven 居多,就要自己轉換一下
Spring Boot Starter 就像是開發中的瑞士軍刀,大大簡化了項目的依賴管理
它們不僅節省了時間,還減少了錯誤,讓我們能夠更專注於業務邏輯的開發
同步刊登於 Blog 「Spring Boot API 開發:從 0 到 1」Day 05 Spring Boot Starter
我的粉絲專頁
圖片來源:AI 產生